官網對於性能測試的描述,分別提供了sysbench以及TPC-C的測試數據。在v5.2的改版後,也對新舊版TiDB的效能做了比較。而PingCap本身也開發了go-ycsb這套測試工具。ycsb是一套由yahoo推出以java語言開發的open source測試軟體。而go-ycsb則如其名,用go語言重構了這套測試軟體。
https://github.com/brianfrankcooper/YCSB
https://github.com/pingcap/go-ycsb
ycsb本身依據不同的使用情境提供了六種workload腳本,其內容大致上為:
workloada: 讀寫各佔一半比例。
workloadb: 95%的讀,5%的寫。
workloadc: read only。
workloadd: 讀佔95%,寫佔5%,讀取最近的更新,時間越接近讀取機率越高。
workloade: Scan佔95%,寫入站5%,小範圍的讀取。
workloadf: 對資料執行讀取、修改、寫回。
依據每種不同的database帶入特定的參數,以tikv為例必填的參數有
引用https://github.com/pingcap/go-ycsb#tikv
此外還有共用的參數,例如
threads: 用戶的thread數量,預設為1。
target: 預計要達到的每秒ops。
recordcount: 預定要操作的資料筆數。
operationcount: 預定執行的操作數量。
threadcount: 意思與threads相同。
了解了go-ycsb使用方式之後,接下來就開始做實際的壓測。